控制电脑(别人远程操控自己电脑是否需要自己同意)
资讯
2024-08-22
186
1. 控制电脑,别人远程操控自己电脑是否需要自己同意?
当然需要,是你请求别人控制你的电脑。你不发出请求,自然别人就没法控制你的电脑。另外,远程协助占有一定的网速。是需要你这边点击确认的,如果你没有点击确认的话是不用担心的.即使对方是个程式高手的话,在你防火墙开启的状态下,也没办法留下后门.放心吧.建议检查防火墙设置.安装木马查杀软件.
2. 个人电脑如何控制单片机?
个人电脑控制单片机,主要通过以下步骤:1)建立个人电脑和单片机的通信连接普通的单片机通常有UART、SPI、IIC、USB等通信模块。
和电脑通信最常用的是UART,可以有两种方式和电脑建立连接(现在的笔记本电脑很少有支持RS232的DB9接口,所以需要使用USB转TTL,或者USB转485的数据线):
从网上购买USB转TTL的串口线:
通过UART-TTL,将单片机的串口TX,RX引出,加限流保护电阻之后,将串口线的地和单片机的地接到一起,将单片机的串口TX接到串口线的RX,将单片机的串口RX接到串口线的TX。
还可以通过RS485总线与电脑连接;
仍然从网上购买USB转RS485的数据线:
RX,TX,以及发送/接收使能控制脚如下图连接至485芯片(如MAX485),将单片机的串口转成485总线。
除了串口之外,还可以从网上购买支持UART接口的以太网模块或者wifi模块。
通过以太网模块,或者wifi模块内置的TCP/IP协议栈,采用TCP/IP通信与个人电脑建立连接。
单片机与模块之间的控制(如初始化、建立TCP客户端/服务端,发送/接收TCP/UDP报文等)可以通过标准的AT指令实现。
2)制定协议以及编写软件如果是通过RS485连接,建议采用MODBUS通信协议。
个人自定义协议,我通常采用如下格式:
1字节帧头,2字节数据长度,1字节命令字,n字节payload,1字节crc8校验
包括单片机软件和上位机软件,
不管是串口/RS485通信,还是TCP/IP通信,都是单片机串口的通信程序。
包括发送和接收程序,一般开辟发送/接收两块缓存,在串口中断接收程序中,将串口接收到的数据放在环行队列,在主程序中根据协议从环行队列中取出数据进行解析,当解析到有效数据之后,再抛给应用层程序进行相关处理(如IO口控制,IO口读取,FLASH读写等)。
当应用层需要发送数据时,请求串口发送,将数据填入发送缓存,之后串口程序串口发送中断程序中将数据逐字节送入串口发送寄存器。
以下是我在产品中实际使用的串口程序。
#include "Uart.h"
#include "IO.h"
#include "crc.h"
#include "Timer.h"
#include "Strs.h"
#include "WiFi.h"
#define P_UA_TX_P GPIOA
#define P_UA_TX_V 9
#define P_UA_RX_P GPIOA
#define P_UA_RX_V 10
#define UART_WIFI ((USART_TypeDef *) USART1_BASE)
STRUARecType g_ua_stRecRegs;
STRUASendType g_ua_stSendRegs;
#define ENABLE_UART_TX() {\
UART_WIFI->CR1 |= USART_CR1_TXEIE;\
}
//禁止发送中断,使能接收
#define DISABLE_UART_TX() {\
UART_WIFI->CR1 &= ~USART_CR1_TXEIE;\
g_ua_stSendRegs.m_uchSendTimer = 0;\
}
#define ENABLE_UART_INT() {\
NVIC_EnableIRQ(USART1_IRQn);\
}
void fnUA_Init(void);
void fnUA_RealTime(void);
void fnUA_IOInit(void);
void fnUA_RegInit(void);
void fnUA_IOInit(void)
{
//使能外设时钟
U16 bandrate;
SET_IO_AFMODE_PP(P_UA_TX_P, P_UA_TX_V);
SET_IO_IN_WITHOUTPULLUP(P_UA_RX_P, P_UA_RX_V);
//复位UART1外设模块
RCC->APB2RSTR |= RCC_APB2RSTR_USART1RST;
RCC->APB2RSTR &= ~RCC_APB2RSTR_USART1RST;
//使能外设时钟
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
//使能UART功能
UART_WIFI->CR1 = 0; //OVER8=0:16bit sample;M=0:8data bits;PCE=0:parity disable;
UART_WIFI->CR2 = 0; //ABREN=0:Auto baud rate detection is disabled;one stop bit;
UART_WIFI->CR3 = 0; //OVRDIS=0: Overrun enable;ONEBIT=0: Three sample bit method;EIE=0: Error interrupt enable
// 24M FCK 配置波特率为19200U; 24000000/19200=1250(0x04e2)
bandrate = ((U32)SYSCLK_SYS_FREQ / 2 / (U32)115200);
UART_WIFI->BRR = bandrate;//);
UART_WIFI->SR |= (USART_SR_PE |USART_SR_FE|USART_SR_NE |USART_SR_ORE|USART_SR_TC);
//接收/接收中断使能
UART_WIFI->CR1 |= USART_CR1_RE | USART_CR1_RXNEIE;
//发送使能
UART_WIFI->CR1 |= USART_CR1_TE ; //TCIE = 0;TXEIE = 0;IDLEIE = 0;
//使能UART外设模块
UART_WIFI->CR1 |= USART_CR1_UE;
ENABLE_UART_INT();
}
void fnUA_RegInit(void)
{
memset(&g_ua_stRecRegs, 0, sizeof(g_ua_stRecRegs));
memset(&g_ua_stSendRegs, 0, sizeof(g_ua_stSendRegs));
}
void fnUA_Init(void)
{
fnUA_RegInit();
fnUA_IOInit();
}
void USART1_IRQHandler(void)
{
unsigned char temp =0;
static U8 crc = 0;
//Receive Int
if(UART_WIFI->CR1 & USART_CR1_RXNEIE)
{
while(UART_WIFI->SR & USART_SR_RXNE)
{
temp = UART_WIFI->DR;
g_ua_stRecRegs.m_uchRingBuff[g_ua_stRecRegs.m_uchInP & (UA_RX_RINGBUFF_SIZE - 1)] = temp;
g_ua_stRecRegs.m_uchInP++;
}
}
//Transmitter Int
if(UART_WIFI->CR1 & USART_CR1_TXEIE)
{
if(UART_WIFI->SR & USART_SR_TXE)
{//UART发送中断
if(g_ua_stSendRegs.m_uchIsSending)
{
if(0 == g_ua_stSendRegs.m_uchIndex)
{
crc = 0;
}
if(g_ua_stSendRegs.m_uchIndex < g_ua_stSendRegs.m_uchCount)
{
temp = g_ua_stSendRegs.m_uchBuff[g_ua_stSendRegs.m_uchIndex];
if(g_ua_stSendRegs.m_uchIndex == (g_ua_stSendRegs.m_uchCount - 1))
{
temp = crc;
}
else
{
crc += temp;
}
UART_WIFI->DR = temp;
g_ua_stSendRegs.m_uchIndex ++;
}
else
{
DISABLE_UART_TX();
g_ua_stSendRegs.m_uchIsSending = FALSE;
}
}
}
}
}
#define UA_RX_CHARTIME 8
void fnUA_RecMsg(void)
{
U16 outp;
U8 temp;
static U8 crc = 0;
if(g_tm_stTimerFlag.Bits.bTimer16ms)
{
if(g_ua_stRecRegs.m_uchCharTime)
{
g_ua_stRecRegs.m_uchCharTime--;
if(0 == g_ua_stRecRegs.m_uchCharTime)
{
g_ua_stRecRegs.m_uchPointer = 0;
}
}
}
if(FALSE == g_ua_stRecRegs.m_uchReceived)
{
while(g_ua_stRecRegs.m_uchInP != g_ua_stRecRegs.m_uchOutP)
{
outp = g_ua_stRecRegs.m_uchOutP & (UA_RX_RINGBUFF_SIZE - 1);
g_ua_stRecRegs.m_uchOutP++;
temp = g_ua_stRecRegs.m_uchRingBuff[outp];
if(0 == g_ua_stRecRegs.m_uchPointer)
{
if(0x55 == temp)
{
crc = 0;
g_ua_stRecRegs.m_uchPointer = 1;
}
}
else if(1 == g_ua_stRecRegs.m_uchPointer)
{
if(0xFF == temp)
{
g_ua_stRecRegs.m_uchPointer = 2;
}
else if(0x55 != temp)
{
g_ua_stRecRegs.m_uchPointer = 0;
}
}
else if(g_ua_stRecRegs.m_uchPointer <= 3)
{
g_ua_stRecRegs.m_uchBuff[g_ua_stRecRegs.m_uchPointer - 2] = temp;
g_ua_stRecRegs.m_uchLen = 0;
g_ua_stRecRegs.m_uchPointer ++;
}
else if(g_ua_stRecRegs.m_uchPointer <= 5)
{
g_ua_stRecRegs.m_uchLen = g_ua_stRecRegs.m_uchLen << 8;
g_ua_stRecRegs.m_uchLen |= (U16)temp;
g_ua_stRecRegs.m_uchBuff[g_ua_stRecRegs.m_uchPointer - 2] = temp;
g_ua_stRecRegs.m_uchPointer ++;
if(g_ua_stRecRegs.m_uchLen >= (UA_RX_BUFF_SIZE - 5)) //msgid, length;
{
g_ua_stRecRegs.m_uchPointer = 0;
}
}
else
{
g_ua_stRecRegs.m_uchBuff[g_ua_stRecRegs.m_uchPointer - 2] = temp;
g_ua_stRecRegs.m_uchPointer++;
if(g_ua_stRecRegs.m_uchPointer >= (g_ua_stRecRegs.m_uchLen + 7))
{
g_ua_stRecRegs.m_uchPointer = 0;
if(crc == temp)
{
g_ua_stRecRegs.m_uchRecvTimer = 6;
g_ua_stRecRegs.m_uchLen += 5;
fnWF_ResetDeadTime();
g_ua_stRecRegs.m_uchReceived = TRUE;
}
break;
}
}
crc += temp;
}
}
}
void fnUA_Monitor(void)
{
if(g_tm_stTimerFlag.Bits.bTimer16ms)
{
if(g_ua_stSendRegs.m_uchSendTimer)
{
g_ua_stSendRegs.m_uchSendTimer --;
if(0 == g_ua_stSendRegs.m_uchSendTimer)
{
fnUA_Init();
}
}
}
}
void fnUA_RealTime(void)
{
U32 data;
fnUA_Monitor();
fnUA_RecMsg();
if(g_tm_stTimerFlag.Bits.bTimer100ms){
if(g_ua_stRecRegs.m_uchRecvTimer)
{
g_ua_stRecRegs.m_uchRecvTimer--;
if(0 == g_ua_stRecRegs.m_uchRecvTimer)
{
g_ua_stRecRegs.m_uchReceived = FALSE;
}
}
}
}
U8 fnUA_SendReq(U16 msgid, U16 len)
{
U8 res = FALSE;
g_ua_stSendRegs.m_uchBuff[0] = 0x55;
g_ua_stSendRegs.m_uchBuff[1] = 0xFF;
g_ua_stSendRegs.m_uchBuff[2] = (U8)(msgid >> 8);
g_ua_stSendRegs.m_uchBuff[3] = (U8)msgid;
g_ua_stSendRegs.m_uchBuff[4] = (U8)(len >> 8);
g_ua_stSendRegs.m_uchBuff[5] = (U8)len;
g_ua_stSendRegs.m_uchCount = len + 7;
g_ua_stSendRegs.m_uchSendTimer = (200);
g_ua_stSendRegs.m_uchIndex = 0;
g_ua_stSendRegs.m_uchIsSending = TRUE;
ENABLE_UART_TX();
res = TRUE;
return(res);
}
U8 fnUA_IsSend(void)
{
U8 res = TRUE;
if(FALSE == g_ua_stSendRegs.m_uchIsSending)
{
res = FALSE;
}
return res;
}
简单的调试,可以用串口调试工具,采用MODBUS协议的工业控制可以用wincc等组态软件。
对于上位机软件,需要选择集成开发环境和编程语言。
这里选择非常多,可以用C语言的VC, PASCAL语言的delphi,脚本语言python,甚至可以用图形化编程语言labview.
我个人比较喜欢用delphi,接下来讲一下delphi的编程实现。
先在delphi上设计人机界面,比如下图的界面。
采用MSCOMM或者SPCOMM实现串口通信。
根据用户的操作发送数据给单片机,接收单片机的数据显示在界面上,有些基本需要通过数据库控件,采用access或者mysql数据库,将采集到的数据保存下来。
3. 怎么设置家长控制电脑?
1、在电脑上打开开始菜单,在打开的开始菜单界面中,点击控制面板选项。
2、在打开的控制面板界面中,找到用户账户选项,并点击进入。
3、在跳转的用户账户管理员界面中,点击管理员选项。
4、在跳转的界面中,找到家长控制选项,并点击将其关闭即可。
4. 电脑游戏控制选项怎么设置?
1、以使用NVIDIA显卡硬件为例,打开Windows控制面板窗口页面,点击“NVIDIA控制面板”菜单;
2、在打开的页面中,点击页面左侧“管理3D设置”选项;
3、接下来,在打开的页面中,点击顶部“程序设置”选项卡,点击页面中的“添加”按钮;
4、接下来,在打开的程序列表中,选择要设置的游戏软件主程序,点击底部“添加选定的程序”按钮;
5、程序选定之后,点击页面中的下拉菜单,选择“高性能NVIDIA处理器”选项;
6、最后,点击页面底部“应用”按钮,保存该项设置,确保游戏过程中使用独立显卡让游戏体验更好。
5. windows控制中心快捷键?
1.快捷键打开方式,使用组合快捷键“Win+R”打开运行窗口;弹窗中输入命令control,回车确定;
2.将控制面板固定在开始菜单中,单击开始菜单,下拉找到“windows 系统”;单击下拉找到“控制面板”,右键选择“固定到‘开始’屏幕”。
希望以上的方法对广大的手机用户们能够以一定的帮助。
6. 控制对方电脑系统限制怎么解决?
您好,可以尝试以下方法解决:
1. 重启电脑:有时候限制控制权的程序可能会在电脑启动时运行,重启电脑可能会解决这个问题。
2. 使用安全模式:尝试进入安全模式,安全模式可以禁用某些限制控制权的程序,从而允许您重新获得对电脑系统的控制权。
3. 卸载限制控制权的程序:如果您知道是哪个程序限制了您的控制权,可以尝试卸载该程序或者把它停止运行。
4. 使用系统还原:如果您不确定是哪个程序限制了您的控制权,可以尝试使用系统还原功能,将电脑恢复到之前的某个时间点,以解决问题。
5. 重新安装操作系统:如果以上方法都无法解决问题,可以尝试重新安装操作系统,这将清除所有限制
7. 怎样控制对方电脑?
通过网络控制别人电脑,需要获得其相关权限后,即可控制对方电脑。
1、Windows操作系统自带有一个“远程协助”程序。通过设置、运行这个程序,可与另一台电脑直接互控。
2、这种网络通讯方式,本意是用来帮助对方解决一些操作、设置方面的疑难问题。但必须要在受控方授权后,控方才能远程连接成功,行使操作行为。
3、若想非法控制别人电脑,即黑客行为,则需有些非常人之知识,才可达到目的。黑客攻击网络用户电脑,要使用“黑客工具”入侵其系统,破解相关文件,获得高级权限后,才能操控该电脑,被控电脑称其为“肉鸡”。
本站涵盖的内容、图片、视频等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系我们删除!联系邮箱:ynstorm@foxmail.com 谢谢支持!
1. 控制电脑,别人远程操控自己电脑是否需要自己同意?
当然需要,是你请求别人控制你的电脑。你不发出请求,自然别人就没法控制你的电脑。另外,远程协助占有一定的网速。是需要你这边点击确认的,如果你没有点击确认的话是不用担心的.即使对方是个程式高手的话,在你防火墙开启的状态下,也没办法留下后门.放心吧.建议检查防火墙设置.安装木马查杀软件.
2. 个人电脑如何控制单片机?
个人电脑控制单片机,主要通过以下步骤:1)建立个人电脑和单片机的通信连接普通的单片机通常有UART、SPI、IIC、USB等通信模块。
和电脑通信最常用的是UART,可以有两种方式和电脑建立连接(现在的笔记本电脑很少有支持RS232的DB9接口,所以需要使用USB转TTL,或者USB转485的数据线):
从网上购买USB转TTL的串口线:
通过UART-TTL,将单片机的串口TX,RX引出,加限流保护电阻之后,将串口线的地和单片机的地接到一起,将单片机的串口TX接到串口线的RX,将单片机的串口RX接到串口线的TX。
还可以通过RS485总线与电脑连接;
仍然从网上购买USB转RS485的数据线:
RX,TX,以及发送/接收使能控制脚如下图连接至485芯片(如MAX485),将单片机的串口转成485总线。
除了串口之外,还可以从网上购买支持UART接口的以太网模块或者wifi模块。
通过以太网模块,或者wifi模块内置的TCP/IP协议栈,采用TCP/IP通信与个人电脑建立连接。
单片机与模块之间的控制(如初始化、建立TCP客户端/服务端,发送/接收TCP/UDP报文等)可以通过标准的AT指令实现。
2)制定协议以及编写软件如果是通过RS485连接,建议采用MODBUS通信协议。
个人自定义协议,我通常采用如下格式:
1字节帧头,2字节数据长度,1字节命令字,n字节payload,1字节crc8校验
包括单片机软件和上位机软件,
不管是串口/RS485通信,还是TCP/IP通信,都是单片机串口的通信程序。
包括发送和接收程序,一般开辟发送/接收两块缓存,在串口中断接收程序中,将串口接收到的数据放在环行队列,在主程序中根据协议从环行队列中取出数据进行解析,当解析到有效数据之后,再抛给应用层程序进行相关处理(如IO口控制,IO口读取,FLASH读写等)。
当应用层需要发送数据时,请求串口发送,将数据填入发送缓存,之后串口程序串口发送中断程序中将数据逐字节送入串口发送寄存器。
以下是我在产品中实际使用的串口程序。
#include "Uart.h"
#include "IO.h"
#include "crc.h"
#include "Timer.h"
#include "Strs.h"
#include "WiFi.h"
#define P_UA_TX_P GPIOA
#define P_UA_TX_V 9
#define P_UA_RX_P GPIOA
#define P_UA_RX_V 10
#define UART_WIFI ((USART_TypeDef *) USART1_BASE)
STRUARecType g_ua_stRecRegs;
STRUASendType g_ua_stSendRegs;
#define ENABLE_UART_TX() {\
UART_WIFI->CR1 |= USART_CR1_TXEIE;\
}
//禁止发送中断,使能接收
#define DISABLE_UART_TX() {\
UART_WIFI->CR1 &= ~USART_CR1_TXEIE;\
g_ua_stSendRegs.m_uchSendTimer = 0;\
}
#define ENABLE_UART_INT() {\
NVIC_EnableIRQ(USART1_IRQn);\
}
void fnUA_Init(void);
void fnUA_RealTime(void);
void fnUA_IOInit(void);
void fnUA_RegInit(void);
void fnUA_IOInit(void)
{
//使能外设时钟
U16 bandrate;
SET_IO_AFMODE_PP(P_UA_TX_P, P_UA_TX_V);
SET_IO_IN_WITHOUTPULLUP(P_UA_RX_P, P_UA_RX_V);
//复位UART1外设模块
RCC->APB2RSTR |= RCC_APB2RSTR_USART1RST;
RCC->APB2RSTR &= ~RCC_APB2RSTR_USART1RST;
//使能外设时钟
RCC->APB2ENR |= RCC_APB2ENR_USART1EN;
//使能UART功能
UART_WIFI->CR1 = 0; //OVER8=0:16bit sample;M=0:8data bits;PCE=0:parity disable;
UART_WIFI->CR2 = 0; //ABREN=0:Auto baud rate detection is disabled;one stop bit;
UART_WIFI->CR3 = 0; //OVRDIS=0: Overrun enable;ONEBIT=0: Three sample bit method;EIE=0: Error interrupt enable
// 24M FCK 配置波特率为19200U; 24000000/19200=1250(0x04e2)
bandrate = ((U32)SYSCLK_SYS_FREQ / 2 / (U32)115200);
UART_WIFI->BRR = bandrate;//);
UART_WIFI->SR |= (USART_SR_PE |USART_SR_FE|USART_SR_NE |USART_SR_ORE|USART_SR_TC);
//接收/接收中断使能
UART_WIFI->CR1 |= USART_CR1_RE | USART_CR1_RXNEIE;
//发送使能
UART_WIFI->CR1 |= USART_CR1_TE ; //TCIE = 0;TXEIE = 0;IDLEIE = 0;
//使能UART外设模块
UART_WIFI->CR1 |= USART_CR1_UE;
ENABLE_UART_INT();
}
void fnUA_RegInit(void)
{
memset(&g_ua_stRecRegs, 0, sizeof(g_ua_stRecRegs));
memset(&g_ua_stSendRegs, 0, sizeof(g_ua_stSendRegs));
}
void fnUA_Init(void)
{
fnUA_RegInit();
fnUA_IOInit();
}
void USART1_IRQHandler(void)
{
unsigned char temp =0;
static U8 crc = 0;
//Receive Int
if(UART_WIFI->CR1 & USART_CR1_RXNEIE)
{
while(UART_WIFI->SR & USART_SR_RXNE)
{
temp = UART_WIFI->DR;
g_ua_stRecRegs.m_uchRingBuff[g_ua_stRecRegs.m_uchInP & (UA_RX_RINGBUFF_SIZE - 1)] = temp;
g_ua_stRecRegs.m_uchInP++;
}
}
//Transmitter Int
if(UART_WIFI->CR1 & USART_CR1_TXEIE)
{
if(UART_WIFI->SR & USART_SR_TXE)
{//UART发送中断
if(g_ua_stSendRegs.m_uchIsSending)
{
if(0 == g_ua_stSendRegs.m_uchIndex)
{
crc = 0;
}
if(g_ua_stSendRegs.m_uchIndex < g_ua_stSendRegs.m_uchCount)
{
temp = g_ua_stSendRegs.m_uchBuff[g_ua_stSendRegs.m_uchIndex];
if(g_ua_stSendRegs.m_uchIndex == (g_ua_stSendRegs.m_uchCount - 1))
{
temp = crc;
}
else
{
crc += temp;
}
UART_WIFI->DR = temp;
g_ua_stSendRegs.m_uchIndex ++;
}
else
{
DISABLE_UART_TX();
g_ua_stSendRegs.m_uchIsSending = FALSE;
}
}
}
}
}
#define UA_RX_CHARTIME 8
void fnUA_RecMsg(void)
{
U16 outp;
U8 temp;
static U8 crc = 0;
if(g_tm_stTimerFlag.Bits.bTimer16ms)
{
if(g_ua_stRecRegs.m_uchCharTime)
{
g_ua_stRecRegs.m_uchCharTime--;
if(0 == g_ua_stRecRegs.m_uchCharTime)
{
g_ua_stRecRegs.m_uchPointer = 0;
}
}
}
if(FALSE == g_ua_stRecRegs.m_uchReceived)
{
while(g_ua_stRecRegs.m_uchInP != g_ua_stRecRegs.m_uchOutP)
{
outp = g_ua_stRecRegs.m_uchOutP & (UA_RX_RINGBUFF_SIZE - 1);
g_ua_stRecRegs.m_uchOutP++;
temp = g_ua_stRecRegs.m_uchRingBuff[outp];
if(0 == g_ua_stRecRegs.m_uchPointer)
{
if(0x55 == temp)
{
crc = 0;
g_ua_stRecRegs.m_uchPointer = 1;
}
}
else if(1 == g_ua_stRecRegs.m_uchPointer)
{
if(0xFF == temp)
{
g_ua_stRecRegs.m_uchPointer = 2;
}
else if(0x55 != temp)
{
g_ua_stRecRegs.m_uchPointer = 0;
}
}
else if(g_ua_stRecRegs.m_uchPointer <= 3)
{
g_ua_stRecRegs.m_uchBuff[g_ua_stRecRegs.m_uchPointer - 2] = temp;
g_ua_stRecRegs.m_uchLen = 0;
g_ua_stRecRegs.m_uchPointer ++;
}
else if(g_ua_stRecRegs.m_uchPointer <= 5)
{
g_ua_stRecRegs.m_uchLen = g_ua_stRecRegs.m_uchLen << 8;
g_ua_stRecRegs.m_uchLen |= (U16)temp;
g_ua_stRecRegs.m_uchBuff[g_ua_stRecRegs.m_uchPointer - 2] = temp;
g_ua_stRecRegs.m_uchPointer ++;
if(g_ua_stRecRegs.m_uchLen >= (UA_RX_BUFF_SIZE - 5)) //msgid, length;
{
g_ua_stRecRegs.m_uchPointer = 0;
}
}
else
{
g_ua_stRecRegs.m_uchBuff[g_ua_stRecRegs.m_uchPointer - 2] = temp;
g_ua_stRecRegs.m_uchPointer++;
if(g_ua_stRecRegs.m_uchPointer >= (g_ua_stRecRegs.m_uchLen + 7))
{
g_ua_stRecRegs.m_uchPointer = 0;
if(crc == temp)
{
g_ua_stRecRegs.m_uchRecvTimer = 6;
g_ua_stRecRegs.m_uchLen += 5;
fnWF_ResetDeadTime();
g_ua_stRecRegs.m_uchReceived = TRUE;
}
break;
}
}
crc += temp;
}
}
}
void fnUA_Monitor(void)
{
if(g_tm_stTimerFlag.Bits.bTimer16ms)
{
if(g_ua_stSendRegs.m_uchSendTimer)
{
g_ua_stSendRegs.m_uchSendTimer --;
if(0 == g_ua_stSendRegs.m_uchSendTimer)
{
fnUA_Init();
}
}
}
}
void fnUA_RealTime(void)
{
U32 data;
fnUA_Monitor();
fnUA_RecMsg();
if(g_tm_stTimerFlag.Bits.bTimer100ms){
if(g_ua_stRecRegs.m_uchRecvTimer)
{
g_ua_stRecRegs.m_uchRecvTimer--;
if(0 == g_ua_stRecRegs.m_uchRecvTimer)
{
g_ua_stRecRegs.m_uchReceived = FALSE;
}
}
}
}
U8 fnUA_SendReq(U16 msgid, U16 len)
{
U8 res = FALSE;
g_ua_stSendRegs.m_uchBuff[0] = 0x55;
g_ua_stSendRegs.m_uchBuff[1] = 0xFF;
g_ua_stSendRegs.m_uchBuff[2] = (U8)(msgid >> 8);
g_ua_stSendRegs.m_uchBuff[3] = (U8)msgid;
g_ua_stSendRegs.m_uchBuff[4] = (U8)(len >> 8);
g_ua_stSendRegs.m_uchBuff[5] = (U8)len;
g_ua_stSendRegs.m_uchCount = len + 7;
g_ua_stSendRegs.m_uchSendTimer = (200);
g_ua_stSendRegs.m_uchIndex = 0;
g_ua_stSendRegs.m_uchIsSending = TRUE;
ENABLE_UART_TX();
res = TRUE;
return(res);
}
U8 fnUA_IsSend(void)
{
U8 res = TRUE;
if(FALSE == g_ua_stSendRegs.m_uchIsSending)
{
res = FALSE;
}
return res;
}
简单的调试,可以用串口调试工具,采用MODBUS协议的工业控制可以用wincc等组态软件。
对于上位机软件,需要选择集成开发环境和编程语言。
这里选择非常多,可以用C语言的VC, PASCAL语言的delphi,脚本语言python,甚至可以用图形化编程语言labview.
我个人比较喜欢用delphi,接下来讲一下delphi的编程实现。
先在delphi上设计人机界面,比如下图的界面。
采用MSCOMM或者SPCOMM实现串口通信。
根据用户的操作发送数据给单片机,接收单片机的数据显示在界面上,有些基本需要通过数据库控件,采用access或者mysql数据库,将采集到的数据保存下来。
3. 怎么设置家长控制电脑?
1、在电脑上打开开始菜单,在打开的开始菜单界面中,点击控制面板选项。
2、在打开的控制面板界面中,找到用户账户选项,并点击进入。
3、在跳转的用户账户管理员界面中,点击管理员选项。
4、在跳转的界面中,找到家长控制选项,并点击将其关闭即可。
4. 电脑游戏控制选项怎么设置?
1、以使用NVIDIA显卡硬件为例,打开Windows控制面板窗口页面,点击“NVIDIA控制面板”菜单;
2、在打开的页面中,点击页面左侧“管理3D设置”选项;
3、接下来,在打开的页面中,点击顶部“程序设置”选项卡,点击页面中的“添加”按钮;
4、接下来,在打开的程序列表中,选择要设置的游戏软件主程序,点击底部“添加选定的程序”按钮;
5、程序选定之后,点击页面中的下拉菜单,选择“高性能NVIDIA处理器”选项;
6、最后,点击页面底部“应用”按钮,保存该项设置,确保游戏过程中使用独立显卡让游戏体验更好。
5. windows控制中心快捷键?
1.快捷键打开方式,使用组合快捷键“Win+R”打开运行窗口;弹窗中输入命令control,回车确定;
2.将控制面板固定在开始菜单中,单击开始菜单,下拉找到“windows 系统”;单击下拉找到“控制面板”,右键选择“固定到‘开始’屏幕”。
希望以上的方法对广大的手机用户们能够以一定的帮助。
6. 控制对方电脑系统限制怎么解决?
您好,可以尝试以下方法解决:
1. 重启电脑:有时候限制控制权的程序可能会在电脑启动时运行,重启电脑可能会解决这个问题。
2. 使用安全模式:尝试进入安全模式,安全模式可以禁用某些限制控制权的程序,从而允许您重新获得对电脑系统的控制权。
3. 卸载限制控制权的程序:如果您知道是哪个程序限制了您的控制权,可以尝试卸载该程序或者把它停止运行。
4. 使用系统还原:如果您不确定是哪个程序限制了您的控制权,可以尝试使用系统还原功能,将电脑恢复到之前的某个时间点,以解决问题。
5. 重新安装操作系统:如果以上方法都无法解决问题,可以尝试重新安装操作系统,这将清除所有限制
7. 怎样控制对方电脑?
通过网络控制别人电脑,需要获得其相关权限后,即可控制对方电脑。
1、Windows操作系统自带有一个“远程协助”程序。通过设置、运行这个程序,可与另一台电脑直接互控。
2、这种网络通讯方式,本意是用来帮助对方解决一些操作、设置方面的疑难问题。但必须要在受控方授权后,控方才能远程连接成功,行使操作行为。
3、若想非法控制别人电脑,即黑客行为,则需有些非常人之知识,才可达到目的。黑客攻击网络用户电脑,要使用“黑客工具”入侵其系统,破解相关文件,获得高级权限后,才能操控该电脑,被控电脑称其为“肉鸡”。
本站涵盖的内容、图片、视频等数据系网络收集,部分未能与原作者取得联系。若涉及版权问题,请联系我们删除!联系邮箱:ynstorm@foxmail.com 谢谢支持!